#pragma once
#include"rb_Tree.h"
#include"my_map.h"
#include"my_set.h"
#include<string>

//void text1()
//{
//	RB_Tree<int, int> t;
//	int arr[] = { 16, 3, 7, 11, 9, 26, 18, 14, 15 };
//	//int arr[] = { 16, 3, 7, 11, 9};
//	//int arr[] = { 16, 3, 7};
//	for (auto e : arr){
//		t.Insert(make_pair(e, e));
//	}
//	t.A();
//	cout << t.RBTreeCount() << endl;
//	//cout << t.Find(3) << endl;
//	//cout << t.Find(30) << endl;
//	//cout << "11111" << endl;
//}

//void text2()
//{
//	Map<int, int> m;
//	//int arr[] = { 16, 3, 7, 11, 9, 26, 18, 14, 15 };
//	int arr[] = { 16, 3, 7,11,9 };
//	for (auto e : arr)
//		m.Insert(make_pair(e, e));
//	//m.A();
//	/*Map<int, int>::iterator it = m.begin();
//	while (it != m.end()){
//		cout << it._ptr->data.second << " ";
//		if (it._ptr->data.second == 11){
//			cout << it._ptr->data.second << " ";
//			--it;
//			break;
//		}
//		++it;
//	}
//	cout << endl;*/
//
//	Map<int, int>::iterator it = m.begin();
//	while (it != m.end()){
//		cout << it._ptr->data.second << " ";
//		++it;
//	}
//	cout << endl;
//
//	Map<int, int>::reverse__Iterator its = m.rbegin();
//	while (its != m.rend()){
//		
//		cout << its->second << " ";
//		++its;
//	}
//	cout << endl;
//	Map<string, string> dict;
//	dict["sort"];
//	dict["left"] = "";
//	dict["left"] = "kkkk";
//
//	for (auto& e : dict)
//	{
//		cout << e.first << ":" << e.second << endl;
//	}
//
//}

void text3()
{
	Set<int> s;
	int arr[] = { 16, 3, 7, 11, 9, 26, 18, 14, 15 };
	for (auto e : arr){
		s.Insert(e);
	}
	//s.A();
	//cout << endl;
	Set<int>::iterator it = s.begin();
	while (it != s.end()){
		cout << it.operator*() << " ";
		it++;
	}
	cout << endl;

}

int main()
{
	text3();
	return 0;
}